$Description$
$Mirko$在一个养猪场工作,养猪场有$M$个关着的猪圈,$Mirko$不能打开任何猪圈,因为他没钥匙。顾客一个接一个(顺序不能改变)地来到养猪场,他们各拥有一些猪圈的钥匙,想买若干猪。Mirko早就知道关于那天来农场的顾客的所有数据,他可以制定一个销售计划,以便尽可能增加出售的猪的数量。更明确地,整个过程如下:顾客来了,顾客用手里的钥匙打开猪圈了,$Mirko$把他要的猪(从当前打开着的猪圈中选出需要数量)卖给他,并且重排(当前开着的猪圈中的)剩余的猪,
注意,猪圈的容量无穷大。请尽可能最大化他能卖出的猪的数量,顾客来的顺序不可改变,顾客来后、调整完后猪圈门会关闭。
$Solution$
在某个拥有$k$的钥匙的顾客$a$买过猪后,
在之后买猪的某个同样拥有钥匙$k$的顾客$b$也能买到$a$能买到的猪(因为$a$买剩下的猪可以在$a$买后调整到$k$中)。
所以,从$a$向$b$连边即可,流量为$inf$。
并且,如果$a$是第一个打开$k$的人,就将$a$和源点$s$连边,流量为$k$的初始猪的数量。
最后,将汇点$t$与每个顾客连边,流量为顾客最多能买的猪
$Code$
1 |
|